// // plugins/axios.js 文件
// export default ({ $axios, redirect }) => {
//   // 基本配置
//   $axios.defaults.timeout = 10000

//   // 请求拦截器
//   $axios.onRequest((config) => {
//     // console.log('Making request to ' + config.url)
//     return config;
//   });

//   // 响应拦截器
//   $axios.onResponse((resp) => {
//     console.log(resp)
//     return Promise.resolve(resp.data);
//   });

//   $axios.onError((error) => {
//     const code = parseInt(error.response && error.response.status);
//     if (code === 404 || code === 500) {
//       redirect("/error");
//     }

//     return Promise.reject(error);
//   });
// };

// // 作者：时光足迹
// // 链接：https://juejin.cn/post/7018831819797692424
// // 来源：稀土掘金
// // 著作权归作者所有。商业转载请联系作者获得授权，非商业转载请注明出处。

// import {
//   setToken,
//   getRequestToken,
//   ACCESS_TOKEN,
//   NEW_TOKEN
// } from '@/utils/token'

// import { INVALID_TOKEN_CODE, USER_LOCKED_CODE } from '@/utils/api_code'
// import { alertMessage } from '@/utils/alert-message'
export default function({ store, redirect, req, route, $axios }) {
  $axios.defaults.baseURL = process.env.BASE_URL
  $axios.defaults.timeout = 50000
  $axios.defaults.withCredentials = true
  $axios.defaults.headers.get['Content-Type'] = 'multipart/form-data'
  // Content-Type：
  // multipart/form-data
  $axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'

  // $axios.defaults.withCredentials = true
  $axios.interceptors.request.use(

    config => {
      // const token = getRequestToken(req)
      // if (token) {
      //   config.headers[ACCESS_TOKEN] = token
      // }
      return config
    },
    error => {

      return Promise.reject(error)
    }
  )

  $axios.interceptors.response.use(
    response => {
      const res = response.data
      // if (res.code === INVALID_TOKEN_CODE || res.code === USER_LOCKED_CODE) {
      //   store.dispatch('user/ClearSignInInfo').then(() => {
      //     redirect(`/signIn?redirect=${route.fullPath}`)
      //   })
      // }

      // 检测到headers中有刷新的token，则设置新token
      // if (response.headers[NEW_TOKEN]) {
      //   setToken(response.headers[NEW_TOKEN])
      // }

      return res
    },
    error => {

      return Promise.reject(error)
    }
  )
}